package cn.edu.baiyunu.myapplication.data.repository

import cn.edu.baiyunu.myapplication.data.model.MonthlySummary
import cn.edu.baiyunu.myapplication.data.model.Transaction
import kotlinx.coroutines.flow.Flow

/**
 * 交易记录仓库接口
 */
interface TransactionRepository {
    /**
     * 获取所有交易记录
     */
    fun getAllTransactions(): Flow<List<Transaction>>
    
    /**
     * 获取指定ID的交易记录
     */
    fun getTransactionById(id: String): Flow<Transaction?>
    
    /**
     * 获取指定月份的交易记录
     */
    fun getTransactionsByMonth(year: Int, month: Int): Flow<List<Transaction>>
    
    /**
     * 获取最近的n条交易记录
     */
    fun getRecentTransactions(limit: Int): Flow<List<Transaction>>
    
    /**
     * 添加交易记录
     */
    suspend fun addTransaction(transaction: Transaction)
    
    /**
     * 更新交易记录
     */
    suspend fun updateTransaction(transaction: Transaction)
    
    /**
     * 删除交易记录
     */
    suspend fun deleteTransaction(id: String)
    
    /**
     * 获取月度收支汇总
     */
    fun getMonthlySummary(year: Int, month: Int): Flow<MonthlySummary>
    
    /**
     * 初始化示例交易数据
     */
    suspend fun initSampleData()
} 